Compositing images, such as bitmaps, onto video data that is to be rendered by a multimedia pipeline is typically done in a couple of different ways. For example, an application that wishes for the images to be composited can create its own native component, such as a media source at the front end of the multimedia pipeline. The application can then makes calls to this native component to composite various images on the video data. This approach, however, requires the application to create or otherwise provide its own native pipeline component. In addition, because the native component is located at or near the beginning of the pipeline, there may be a good chance for the data provided by the application to be corrupted by another component in the pipeline.
Alternately, the application can interact more directly with a monitor to which the rendering is to take place and less directly with the multimedia pipeline. Specifically, in this instance, the application may create a particular window on top of the window that is rendered on the monitor. This approach requires the application to be aware of the monitor on which rendering is taking place, as well as any associated nuances of the monitor that might affect compositing.